home *** CD-ROM | disk | FTP | other *** search
- #pragma once
-
- typedef struct
- {
- short version;
-
- // version 1 callbacks
-
- pascal Handle (*GetWindowContents)(WindowPtr w);
- pascal void (*GetSelection)(long *selStart, long *selEnd, long *firstChar);
- pascal void (*SetSelection)(long selStart, long selEnd, long firstChar);
- pascal void (*GetDocInfo)(WindowPtr w, Str255 fName, short *vRefNum, long *dirID);
- pascal long (*GetModDate)(WindowPtr w);
- pascal Handle (*Copy)(void);
- pascal void (*Paste)(Handle pasteText);
-
- // version 2 callbacks
-
- /* Text-Editing stuff */
- pascal long (*GetLastLine)(void);
- pascal long (*GetLineNumber)(long selection);
- pascal long (*GetLineStart)(long selection);
- pascal long (*GetLineEnd)(long selection);
- pascal long (*GetLinePos)(long line);
-
- pascal void (*Insert)(char *text, long len);
- pascal void (*Delete)(void);
-
- /* Getting and Setting window text */
- pascal void (*SetWindowContents)(WindowPtr w, Handle h);
- pascal void (*ContentsChanged)(WindowPtr w);
-
- /* Reading file text */
- pascal Handle (*GetFileText)(short vRefNum, long dirID, Str255 fName, Boolean *canDispose);
-
- /* Direct user-interface calls */
- pascal Boolean (*GetFolder)(Str255 prompt, short *vRefNum, long *dirID);
- pascal Boolean (*OpenSeveral)(Boolean sort, short *file_count, StandardFileReply ***files);
-
- pascal DialogPtr (*CenterDialog)(short dialogID);
- pascal Boolean (*StandardFilter)(DialogPtr d, EventRecord *event, short *item);
- pascal void (*FrameDialogItem)(DialogPtr d, short item);
-
- pascal WindowPtr (*NewDocument)(void);
- pascal WindowPtr (*OpenDocument)(void);
-
- /* Utility Routines */
- pascal Handle (*Allocate)(long size, Boolean clear);
- pascal long (*FindPattern)(char *text, long text_len, long text_offset,
- char *pat, long pat_len,
- Boolean case_sensitive);
-
- pascal void (*ReportOSError)(short code);
-
- /* Preference routines */
- pascal void (*GetPreference)(ResType prefType, short req_len, void *buffer, short *act_len);
- pascal void (*SetPreference)(ResType prefType, short req_len, void *buffer, short *act_len);
-
- /* Progress routines */
- pascal void (*StartProgress)(Str255 str, long total, Boolean cancel_allowed);
- pascal Boolean (*DoProgress)(long done);
- pascal void (*DoneProgress)(void);
- } ExternalCallbackBlock;
-
- /*
- 'main' for a BBXT is declared:
-
- pascal void main(ExternalCallbackBlock *callbacks, WindowPtr w); [C]
- procedure Main(callbacks : ExternalCallbackBlock; w : WindowPtr); [Pascal]
- */
-